package com.gt.wxpay.cashier.payChannel.interfaces;

import com.gt.wxpay.cashier.domain.Result;
import com.gt.wxpay.cashier.payChannel.application.PayChannelService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import javax.annotation.PostConstruct;

/**
 * 支付渠道接口
 */
@Controller
@RequestMapping("cashier/payChannel")
public class PayChannelController{
    @Autowired
    private PayChannelService payChannelService;

    private String fileSavePath;

    @Autowired
    private Environment environment;


    @PostConstruct
    public void loadEvn() {
        // 切换代码执行环境
        String os = System.getProperty("os.name");
        if (os.toLowerCase().startsWith("win")) {
            fileSavePath = environment.getProperty("file.save.path_windows");
        } else {
            fileSavePath = environment.getProperty("file.save.path_linux");
        }
        if (StringUtils.isBlank(fileSavePath)) {
            fileSavePath = "/home/museum/data/fileupload/cashier/";
        }
    }


    /**
     * 台账批量导入导出模板文件URL（类路径下的地址）
     *
     * @return
     */
    public String batchTemplateUrl() {
        //TODO:需要批量导入导出时重新实现下面的代码
        throw new RuntimeException("模板未配置，请联系系统管理员配置模板");
    }

    /**
     * 台账批量导出文件名
     *
     * @return
     */
    public String batchExportFileName() {
        //TODO:需要批量导入导出时重新实现下面的代码
        throw new RuntimeException("下载文件名未配置，请联系系统管理员配置下载文件名");
    }




    /**
     * 需要建立文件传输节点：
     * 节点名称：cashier
     * 节点类型：本地存储
     * 节点权限：私有
     * 访问地址前缀：http://10.130.1.11
     * 存储路径基地址：/home/museum/data/fileupload/cashier
     * cashier
     *
     * @param multipartFile
     * @return
     */
    @RequestMapping(value = "/saveApiClientKeyFile", name = "保存证书")
    @ResponseBody
    public Result<?> saveApiClientKeyFile(@RequestParam("file") MultipartFile multipartFile) {
        String originalFilename = multipartFile.getOriginalFilename();
        if (originalFilename.endsWith(".jpg") || originalFilename.endsWith(".png")) {
            return Result.error("证书格式不正确");
        }
        // 组织最终地址
        return Result.ok();
    }

}
